/* 
http://www.jb51.net/article/74491.htm
* @Author: Marte
* @Date:   2016-08-09 19:44:55
* @Last Modified by:   Marte
* @Last Modified time: 2016-08-11 19:33:32
*/
(function ($) {
    $.fn.extend({
        // "highLight": function (options) {
        "arrNext": function (options) {
            //检测用户传进来的参数是否合法
            if (!isValid(options))
                return this;
            var opts = $.extend({}, defaluts, options); //使用jQuery.extend 覆盖插件默认参数
            // return this.each(function () {
                //这里的this 就是 jQuery对象。这里return 为了支持链式调用
                //遍历所有的要高亮的dom,当调用 highLight()插件的是一个集合的时候。
                var _this=$(this);
                _this.find("li:gt(0)").hide();
                // var $this = $(this); 
                //获取当前dom 的 jQuery对象，这里的this是当前循环的dom
                //根据参数来设置 dom的样式
                var length=_this.length;
                var len=length-1;
                for(var i=0;i<length;i++){
                    var li_i=$this.find("li:eq("+i+")");
                    if(li_i.is(":visible")==true){
                        li_i.hide();
                        if (i==len) {
                            $("li:first()").show();
                            return false;
                            }
                        else{
                        li_i.next().show();
                        return false;
                        }
                    }
                }
                // $this.css({
                //     backgroundColor: opts.background,
                //     color: opts.foreground
                // });
                //格式化高亮文本
                // var markup = $this.html();
                // markup = $.fn.highLight.format(markup);
                // $this.html(markup);
            // });
        }
    });
    //默认参数
    var defaluts = {
        // foreground: 'red',
        // background: 'yellow'
        auto:true,
        speed:1000
    };
    //公共的格式化 方法. 默认是加粗，用户可以通过覆盖该方法达到不同的格式化效果。
    // $.fn.highLight.format = function (str) {
    //     return "<strong>" + str + "</strong>";
    // }
    //私有方法，检测参数是否合法
    function isValid(options) {
        return !options || (options && typeof options === "object") ? true : false;
    }
})(window.jQuery);

// $.fn.highLight.format = function (txt) {
//             return "<em>" + txt + "</em>"
//         }
$(function () {
    $(".pro_roll").arrNext({ 
    }); 
    //调用自定义 高亮插件
});





;(function($, window, document,undefined) {
  //定义Beautifier的构造函数
  var Beautifier = function(ele, opt) {
    this.$element = ele,
    this.defaults = {
      // 'color': 'red',
      // 'fontSize': '12px',
      // 'textDecoration': 'none',
      'auto':'true',
      'speed':1000
    },
    this.options = $.extend({}, this.defaults, opt)
  }
  //定义Beautifier的方法
  Beautifier.prototype = {
    // beautify: function() {
    //   return this.$element.css({
    //     'color': this.options.color,
    //     'fontSize': this.options.fontSize,
    //     'textDecoration': this.options.textDecoration
    //   });
    // }
    arrNext: function () {
        var _this=this;
        _this.find("li:gt(0)").hide();
        var length=_this.find("li").length;
        var len=length-1;
        for(var i=0;i<length;i++){
            var li_i=$this.find("li:eq("+i+")");
            if(li_i.is(":visible")==true){
            li_i.hide();
            if (i==len) {
                $("li:first()").show();
                return false;
                }
            else{
                li_i.next().show();
                return false;
                }
            }
        }
    };
    arrPrev:function(){
       var _this=this;
        _this.find("li:gt(0)").hide();
        var length=_this.find("li").length;
        var len=length-1;
        for(var i=0;i<length;i++){
            var li_i=$this.find("li:eq("+i+")");
            if(li_i.is(":visible")==true){
            li_i.hide();
            if (i==0) {
                $("li:last()").show();
                return false;
                }
            else{
                li_i.prev().show();
                return false;
                }
            }
        } 
    }
    autoPlay:function(){
        var timer=setInterval(arrNext, this.options.speed)
    }
  }
  //在插件中使用Beautifier对象
  $.fn.myPlugin = function(options) {
    //创建Beautifier的实体
    var beautifier = new Beautifier(this, options);
    //调用其方法
    return beautifier.autoPlay();
  }
})(jQuery, window, document);

//最终调用
$(function() {
  $('a').myPlugin({
    'color': '#2C9929',
    'fontSize': '20px'
  });
})